/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Key Management Service
基于硬件保护密钥的安全数据托管服务

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef KmsApiModel_h
#define KmsApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKKms/KmsModel.h>


@interface KmsDescribeSecretListRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为10；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize;

@end

@interface KmsDescribeSecretVersionInfoRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsEnableSecretVersionRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsCreateSecretResult : NSObject
/// secretId
 @property (strong,nonatomic,nonnull)  NSString*  secretId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecretId:(NSString*) secretId;
@end

@interface KmsDisableSecretVersionRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsEnableSecretRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsDisableSecretRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsDescribeSecretVersionListRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为10；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
secretId:(NSString*)secretId;

@end

@interface KmsDeleteSecretRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsExportSecretRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsExportSecretResult : NSObject
/// 机密包
 @property (strong,nonatomic,nonnull)  NSString*  secretPackage;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecretPackage:(NSString*) secretPackage;
@end

@interface KmsDeleteSecretVersionRequest:JDCloudRequest

/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretId:(NSString*)secretId;

@end

@interface KmsImportSecretRequest:JDCloudRequest

/// 密钥包的内容
@property (strong,nonatomic,nonnull)  NSString*  secretPackage;
-(id) initWithRegion:(NSString *)regionId
secretPackage:(NSString*)secretPackage;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretPackage:(NSString*)secretPackage;

@end

@interface KmsGetPublicKeyRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsKeyRotationRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsGenerateDataKeyRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsEncryptResult : NSObject
/// 密文数据 Base64-encoded binary data object
 @property (strong,nonatomic,nonnull)  NSString*  ciphertextBlob;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCiphertextBlob:(NSString*) ciphertextBlob;
@end

@interface KmsEnableKeyVersionRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsValidateResult : NSObject
/// 校验签名结果，true为成功，false为失败
 @property (strong,nonatomic,nonnull)  NSNumber*  validated;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithValidated:(NSNumber*) validated;
@end

@interface KmsGenerateDataKeyResult : NSObject
/// 明文DEK Base64-encoded binary data object
 @property (strong,nonatomic,nonnull)  NSString*  plaintext;
/// 密文DEK Base64-encoded binary data object
 @property (strong,nonatomic,nonnull)  NSString*  ciphertextBlob;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPlaintext:(NSString*) plaintext

    ciphertextBlob:(NSString*)ciphertextBlob;
@end

@interface KmsCancelKeyVersionDeletionRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsDecryptRequest:JDCloudRequest

/// 密文数据 Base64-encoded binary data object
@property (strong,nonatomic,nonnull)  NSString*  ciphertextBlob;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
ciphertextBlob:(NSString*)ciphertextBlob
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
ciphertextBlob:(NSString*)ciphertextBlob
keyId:(NSString*)keyId;

@end

@interface KmsGetPublicKeyResult : NSObject
/// 公钥，PEM格式
 @property (strong,nonatomic,nonnull)  NSString*  publicKeyBlob;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPublicKeyBlob:(NSString*) publicKeyBlob;
@end

@interface KmsDescribeKeyListRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为10；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize;

@end

@interface KmsDescribeKeyDetailRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为10；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyId:(NSString*)keyId;

@end

@interface KmsScheduleKeyVersionDeletionRequest:JDCloudRequest

/// 延迟删除时间，单位（天），默认为7天；支持时间范围：7~30天
@property (strong,nonatomic,nonnull)  NSNumber*  delayDays;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
delayDays:(NSNumber*)delayDays
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
delayDays:(NSNumber*)delayDays
keyId:(NSString*)keyId;

@end

@interface KmsValidateRequest:JDCloudRequest

/// 需要签名的数据 Base64-encoded binary data object
@property (strong,nonatomic,nonnull)  NSString*  plaintext;
/// 签名
@property (strong,nonatomic,nonnull)  NSString*  signature;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
plaintext:(NSString*)plaintext
signature:(NSString*)signature
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
plaintext:(NSString*)plaintext
signature:(NSString*)signature
keyId:(NSString*)keyId;

@end

@interface KmsCreateKeyResult : NSObject
/// 创建的密钥ID
 @property (strong,nonatomic,nonnull)  NSString*  keyId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithKeyId:(NSString*) keyId;
@end

@interface KmsSignResult : NSObject
/// 签名
 @property (strong,nonatomic,nonnull)  NSString*  signature;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSignature:(NSString*) signature;
@end

@interface KmsCancelKeyDeletionRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsEncryptRequest:JDCloudRequest

/// 明文数据 Base64-encoded binary data object
@property (strong,nonatomic,nonnull)  NSString*  plaintext;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
plaintext:(NSString*)plaintext
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
plaintext:(NSString*)plaintext
keyId:(NSString*)keyId;

@end

@interface KmsSignRequest:JDCloudRequest

/// 需要签名的数据 Base64-encoded binary data object
@property (strong,nonatomic,nonnull)  NSString*  plaintext;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
plaintext:(NSString*)plaintext
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
plaintext:(NSString*)plaintext
keyId:(NSString*)keyId;

@end

@interface KmsScheduleKeyDeletionRequest:JDCloudRequest

/// 延迟删除时间，单位（天），默认为7天；支持时间范围：7~30天
@property (strong,nonatomic,nonnull)  NSNumber*  delayDays;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
delayDays:(NSNumber*)delayDays
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
delayDays:(NSNumber*)delayDays
keyId:(NSString*)keyId;

@end

@interface KmsDisableKeyRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsDescribeKeyRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsEnableKeyRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsDecryptResult : NSObject
/// 明文数据 Base64-encoded binary data object
 @property (strong,nonatomic,nonnull)  NSString*  plaintext;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPlaintext:(NSString*) plaintext;
@end

@interface KmsDisableKeyVersionRequest:JDCloudRequest

/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyId:(NSString*)keyId;

@end

@interface KmsEnableSecretResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsEnableSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsEnableSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsEnableSecretResult*) result;
@end

@interface KmsEnableSecretVersionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsEnableSecretVersionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsEnableSecretVersionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsEnableSecretVersionResult*) result;
@end

@interface KmsCreateSecretVersionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsCreateSecretVersionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsCreateSecretVersionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsCreateSecretVersionResult*) result;
@end

@interface KmsUpdateSecretResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsUpdateSecretRequest:JDCloudRequest

/// SecretDescCfg
@property (strong,nonatomic,nonnull)  SecretDescCfg*  secretDescCfg;
/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretDescCfg:(SecretDescCfg*)secretDescCfg
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretDescCfg:(SecretDescCfg*)secretDescCfg
secretId:(NSString*)secretId;

@end

@interface KmsDescribeSecretVersionListResult : NSObject
/// SecretDetail
 @property (strong,nonatomic,nonnull)  SecretDetail*  secretDetail;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecretDetail:(SecretDetail*) secretDetail;
@end

@interface KmsDescribeSecretVersionInfoResult : NSObject
/// SecretVersionItem
 @property (strong,nonatomic,nonnull)  SecretVersionItem*  secretVersionItem;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecretVersionItem:(SecretVersionItem*) secretVersionItem;
@end

@interface KmsDescribeSecretVersionInfoResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDescribeSecretVersionInfoResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDescribeSecretVersionInfoResult*) result;
@end

@interface KmsDescribeSecretVersionListResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDescribeSecretVersionListResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDescribeSecretVersionListResult*) result;
@end

@interface KmsCreateSecretVersionRequest:JDCloudRequest

/// SecretVersionCfg
@property (strong,nonatomic,nonnull)  SecretVersionCfg*  secretVersionCfg;
/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretVersionCfg:(SecretVersionCfg*)secretVersionCfg
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretVersionCfg:(SecretVersionCfg*)secretVersionCfg
secretId:(NSString*)secretId;

@end

@interface KmsDeleteSecretVersionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsDeleteSecretVersionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDeleteSecretVersionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDeleteSecretVersionResult*) result;
@end

@interface KmsDeleteSecretResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsDeleteSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDeleteSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDeleteSecretResult*) result;
@end

@interface KmsDescribeSecretListResult : NSObject
/// SecretList
 @property (strong,nonatomic,nonnull)  NSArray<SecretInfo*>*  secretList;
/// Secret的数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecretList:(NSArray<SecretInfo*>*) secretList

    totalCount:(NSNumber*)totalCount;
@end

@interface KmsCreateSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsCreateSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsCreateSecretResult*) result;
@end

@interface KmsUpdateSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsUpdateSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsUpdateSecretResult*) result;
@end

@interface KmsUpdateSecretVersionRequest:JDCloudRequest

/// SecretTimeCfg
@property (strong,nonatomic,nonnull)  SecretTimeCfg*  secretTimeCfg;
/// 机密ID
@property (strong,nonatomic,nonnull)  NSString*  secretId;
-(id) initWithRegion:(NSString *)regionId
secretTimeCfg:(SecretTimeCfg*)secretTimeCfg
secretId:(NSString*)secretId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretTimeCfg:(SecretTimeCfg*)secretTimeCfg
secretId:(NSString*)secretId;

@end

@interface KmsUpdateSecretVersionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsDisableSecretVersionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsImportSecretResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsCreateSecretRequest:JDCloudRequest

/// SecretCfg
@property (strong,nonatomic,nonnull)  SecretCfg*  secretCfg;
-(id) initWithRegion:(NSString *)regionId
secretCfg:(SecretCfg*)secretCfg;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
secretCfg:(SecretCfg*)secretCfg;

@end

@interface KmsDisableSecretResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsDisableSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDisableSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDisableSecretResult*) result;
@end

@interface KmsImportSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsImportSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsImportSecretResult*) result;
@end

@interface KmsDisableSecretVersionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDisableSecretVersionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDisableSecretVersionResult*) result;
@end

@interface KmsDescribeSecretListResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDescribeSecretListResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDescribeSecretListResult*) result;
@end

@interface KmsExportSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsExportSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsExportSecretResult*) result;
@end

@interface KmsUpdateSecretVersionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsUpdateSecretVersionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsUpdateSecretVersionResult*) result;
@end

@interface KmsDisableKeyVersionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsDisableKeyVersionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDisableKeyVersionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDisableKeyVersionResult*) result;
@end

@interface KmsDescribeKeyResult : NSObject
/// KeyInfo
 @property (strong,nonatomic,nonnull)  KeyInfo*  keyInfo;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithKeyInfo:(KeyInfo*) keyInfo;
@end

@interface KmsDisableKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsUpdateKeyDescriptionRequest:JDCloudRequest

/// KeyCfg
@property (strong,nonatomic,nonnull)  KeyCfg*  keyCfg;
/// 密钥ID
@property (strong,nonatomic,nonnull)  NSString*  keyId;
-(id) initWithRegion:(NSString *)regionId
keyCfg:(KeyCfg*)keyCfg
keyId:(NSString*)keyId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyCfg:(KeyCfg*)keyCfg
keyId:(NSString*)keyId;

@end

@interface KmsScheduleKeyVersionDeletionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsDisableKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDisableKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDisableKeyResult*) result;
@end

@interface KmsValidateResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsValidateResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsValidateResult*) result;
@end

@interface KmsSignResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsSignResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsSignResult*) result;
@end

@interface KmsUpdateKeyDescriptionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsScheduleKeyDeletionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsScheduleKeyDeletionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsScheduleKeyDeletionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsScheduleKeyDeletionResult*) result;
@end

@interface KmsGetPublicKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsGetPublicKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsGetPublicKeyResult*) result;
@end

@interface KmsEnableKeyVersionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsEnableKeyVersionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsEnableKeyVersionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsEnableKeyVersionResult*) result;
@end

@interface KmsCancelKeyVersionDeletionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsCancelKeyVersionDeletionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsCancelKeyVersionDeletionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsCancelKeyVersionDeletionResult*) result;
@end

@interface KmsDescribeKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDescribeKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDescribeKeyResult*) result;
@end

@interface KmsDescribeKeyDetailResult : NSObject
/// KeyDetail
 @property (strong,nonatomic,nonnull)  KeyDetail*  keyDetail;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithKeyDetail:(KeyDetail*) keyDetail;
@end

@interface KmsEnableKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsCancelKeyDeletionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsCancelKeyDeletionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsCancelKeyDeletionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsCancelKeyDeletionResult*) result;
@end

@interface KmsGenerateDataKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsGenerateDataKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsGenerateDataKeyResult*) result;
@end

@interface KmsScheduleKeyVersionDeletionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsScheduleKeyVersionDeletionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsScheduleKeyVersionDeletionResult*) result;
@end

@interface KmsKeyRotationResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface KmsKeyRotationResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsKeyRotationResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsKeyRotationResult*) result;
@end

@interface KmsEncryptResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsEncryptResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsEncryptResult*) result;
@end

@interface KmsUpdateKeyDescriptionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsUpdateKeyDescriptionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsUpdateKeyDescriptionResult*) result;
@end

@interface KmsDecryptResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDecryptResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDecryptResult*) result;
@end

@interface KmsEnableKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsEnableKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsEnableKeyResult*) result;
@end

@interface KmsCreateKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsCreateKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsCreateKeyResult*) result;
@end

@interface KmsDescribeKeyListResult : NSObject
/// KeyList
 @property (strong,nonatomic,nonnull)  NSArray<KeyInfo*>*  keyList;
/// Key的数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithKeyList:(NSArray<KeyInfo*>*) keyList

    totalCount:(NSNumber*)totalCount;
@end

@interface KmsDescribeKeyListResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDescribeKeyListResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDescribeKeyListResult*) result;
@end

@interface KmsDescribeKeyDetailResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property KmsDescribeKeyDetailResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(KmsDescribeKeyDetailResult*) result;
@end

@interface KmsCreateKeyRequest:JDCloudRequest

/// KeyCfg
@property (strong,nonatomic,nonnull)  KeyCfg*  keyCfg;
-(id) initWithRegion:(NSString *)regionId
keyCfg:(KeyCfg*)keyCfg;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
keyCfg:(KeyCfg*)keyCfg;

@end

#endif /* KmsApiModel_h */
